package com.ruoyi.system.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 试卷题目对象 exam_question
 *
 * @author tyro
 * @date 2025-05-21
 */
public class ExamQuestion extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 题目ID */
    private Long id;

    /** 所属试卷ID */
    @Excel(name = "所属试卷ID")
    private Long paperId;

    /** 题目类型：single-单选题，multiple-多选题，fill-填空题，essay-简答题，coding-编程题 */
    @Excel(name = "题目类型：single-单选题，multiple-多选题，fill-填空题，essay-简答题，coding-编程题")
    private String questionType;

    /** 题号 */
    @Excel(name = "题号")
    private Long questionNumber;

    /** 题干内容 */
    @Excel(name = "题干内容")
    private String questionContent;

    /** 选项内容（JSON格式） */
    @Excel(name = "选项内容", readConverterExp = "J=SON格式")
    private String options;

    /** 题目分值 */
    @Excel(name = "题目分值")
    private Float score;

    /** 题目解析 */
    @Excel(name = "题目解析")
    private String analysis;

    /** 知识点 */
    @Excel(name = "知识点")
    private String knowledgePoint;

    /** 评分标准（主观题） */
    @Excel(name = "评分标准", readConverterExp = "主=观题")
    private String scoringCriteria;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setPaperId(Long paperId)
    {
        this.paperId = paperId;
    }

    public Long getPaperId()
    {
        return paperId;
    }
    public void setQuestionType(String questionType)
    {
        this.questionType = questionType;
    }

    public String getQuestionType()
    {
        return questionType;
    }
    public void setQuestionNumber(Long questionNumber)
    {
        this.questionNumber = questionNumber;
    }

    public Long getQuestionNumber()
    {
        return questionNumber;
    }
    public void setQuestionContent(String questionContent)
    {
        this.questionContent = questionContent;
    }

    public String getQuestionContent()
    {
        return questionContent;
    }
    public void setOptions(String options)
    {
        this.options = options;
    }

    public String getOptions()
    {
        return options;
    }

    public void setScore(Float score)
    {
        this.score = score;
    }

    public Float getScore()
    {
        return score;
    }
    public void setAnalysis(String analysis)
    {
        this.analysis = analysis;
    }

    public String getAnalysis()
    {
        return analysis;
    }
    public void setKnowledgePoint(String knowledgePoint)
    {
        this.knowledgePoint = knowledgePoint;
    }

    public String getKnowledgePoint()
    {
        return knowledgePoint;
    }
    public void setScoringCriteria(String scoringCriteria)
    {
        this.scoringCriteria = scoringCriteria;
    }

    public String getScoringCriteria()
    {
        return scoringCriteria;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("paperId", getPaperId())
            .append("questionType", getQuestionType())
            .append("questionNumber", getQuestionNumber())
            .append("questionContent", getQuestionContent())
            .append("options", getOptions())
            .append("score", getScore())
            .append("analysis", getAnalysis())
            .append("knowledgePoint", getKnowledgePoint())
            .append("scoringCriteria", getScoringCriteria())
            .toString();
    }
}
